(SW Expert Academy) 리스트, 튜플 - 6282번 6286번 6288번 6289번

8번 - 6273번

  • 시간 : 1개 테스트케이스를 합쳐서 Python의 경우 1초
  • 메모리 : 힙, 정적 메모리 합쳐서 256MB 이내, 스택 메모리 1MB 이내

7번은 6번과 똑같은 내용이라 생략

sample = [1, 3, 11, 15, 23, 28, 37, 52, 85, 100]
even_list = [num for num in sample if num%2==0]

print(even_list)

11번 - 6286번

  • 시간 : 1개 테스트케이스를 합쳐서 Python의 경우 1초
  • 메모리 : 힙, 정적 메모리 합쳐서 256MB 이내, 스택 메모리 1MB 이내

살펴볼 부분이 많았음. 리스트 내포는 우선적으로 수행되기 때문에 아래와 같이 하면 범위를 벗어났다고 에러가 남

fibo=[1,1]
temp = [fibo[k-1]+fibo[k-2] for k in range(2,10)]
fibo += temp

print(fibo)
File "**file_name**.py", line , in <module>
File "**file_name**.py", line , in <listcomp>
temp = [fibo[k-1]+fibo[k-2] for k in range(2,10)]
IndexError: list index out of range

굳이 리스트 내포 가능을 사용해서 만들 필요가 있나 싶다…
하지만 황금비율을 활용한 방법은 참고할만 한 것 같다

fibo=[1,1]
[fibo.append(fibo[k-1]+fibo[k-2]) for k in range(2,10)]

print(fibo)

# OR 황금비율 활용

# series = [int((((1 + 5**0.5) / 2)**n - ((1 - 5**0.5) / 2)**n) / 5**0.5) for n in range(1, 11)]


12번 - 6288번

  • 시간 : 1개 테스트케이스를 합쳐서 Python의 경우 1초
  • 메모리 : 힙, 정적 메모리 합쳐서 256MB 이내, 스택 메모리 1MB 이내
ans = [num**2 for num in range(1,21) if num%3!=0 or num%5!=0]

print(ans)

13번 - 6289번

  • 시간 : 1개 테스트케이스를 합쳐서 Python의 경우 1초
  • 메모리 : 힙, 정적 메모리 합쳐서 256MB 이내, 스택 메모리 1MB 이내

list 내용을 int형으로 바꿔서 직접 반복문을 통해 합계를 구한 방법-1
입력 받은 그대로(str형)에서 ‘+’ 기호를 붙여 eval() 함수를 사용해 합계를 구한 방법-2(덤으로 함수로 만들었음)

num = []
[num.append(int(x)) for x in list(input())]
sum = 0
for i in num:
sum += i
print(sum)
def eval_sum():
num = []
[num.append(x) for x in list(input())]
exp=''
for i in num:
exp += i + '+'
return exp[:-1]

print(eval(eval_sum()))